package com.itheima.member;

import com.hzheima.util.ImageUtil;
import com.itheima.ExtendsClass.Fly;
import com.itheima.FinalCanstans;

import java.util.ArrayList;

public class Plane extends Fly {
     private  int xspeed;
     private  int yspeed;
    //定义一个计数器控制飞机的生命次数
//    private  int num = 3;

//    public int getNum() {
//        return num;
//    }

    public ArrayList<Bullet> getBullets() {
        return bullets;
    }

    public ArrayList<Bullet3> getBullets3() {
        return bullets3;
    }

    public int getXspeed() {
        return xspeed;
    }

    public int getYspeed() {
        return yspeed;
    }

    public Plane() {
        img = ImageUtil.getImg("FJ.png");
        width = img.getWidth() / 2;
        hight = img.getHeight() / 2;
        x = 200;
        y = 450;
        xspeed = 3;
        yspeed = 3;
    }

    //创建方法使得飞机向左移动
    public void moveToLeft(){
            x -= xspeed;
            if(x < 0){
                x =0 ;
            }
    }
    // 创建方法使得飞机向右移动
    public void moveToRight(){
            x += xspeed;
            if (x > FinalCanstans.APP_WIDTH-150){
                x = FinalCanstans.APP_WIDTH-150 ;
            }
        }
// 创建方法使得飞机行上移动
    public void moveToUp() {
        y -= yspeed;
        if(y < 0){
            y = 0;
        }
    }
    //创建方法使得飞机向下移动
    public void moveToDown(){
        y += yspeed;
        if(y > FinalCanstans.APP_HIGHT - hight-50){
          y = FinalCanstans.APP_HIGHT - hight-50;
        }
    }

//创建子弹1集合
    int count = 0;
    //创建一个集合用来存储发射的子弹
    ArrayList<Bullet> bullets = new ArrayList<>();
    public void shootBullet() {
        count++;
        if(count % 20 == 0){
            //创建一个子弹的对象
            Bullet bullet = new Bullet(this.x,this.y);
            //将子弹对象存到集合之中
            bullets.add(bullet);
            // 将计数器的数值重新归零
            count = 0;
            //播放子弹发射音效
            MusicUtil.playMp3("shoot.mp3");
        }
        //遍历集合取出获得集合中的每一个元素
        for (int i = 0; i < bullets.size(); i++) {
            Bullet bullet = bullets.get(i);
         //调用子弹中创建的移动方法,使得集合中的每一个元素都能移动
            bullet.move();
            //判断子弹是否出界
            if(bullet.getY() + bullet.getHight() < 0){
            //调用集合中的方法删除出界的子弹
                bullets.remove(i);
            }
        }
    }


//创建子弹2集合

int count3 = 0;
    //创建一个集合用来存储发射的子弹
    ArrayList<Bullet3> bullets3 = new ArrayList<>();
    public void shootBullet2() {
        count3++;
        if(count3 % 20 == 0){
            //创建一个子弹的对象
           Bullet3 bullet3  = new Bullet3(this.x,this.y);
            //将子弹对象存到集合之中
            bullets3.add(bullet3);
            // 将计数器的数值重新归零
            count3 = 0;
            //播放子弹发射音效
            MusicUtil.playMp3("shoot.mp3");
        }
        //遍历集合取出获得集合中的每一个元素
        for (int i = 0; i < bullets3.size(); i++) {
            Bullet3 bullet3 = bullets3.get(i);
            //调用子弹中创建的移动方法,使得集合中的每一个元素都能移动
            bullet3.move();
            //判断子弹是否出界
            if(bullet3.getY() + bullet3.getHight() < 0){
                //调用集合中的方法删除出界的子弹
                bullets3.remove(i);
            }
        }
    }




    public boolean ifCrash(Ball ball) {
        boolean r = judge(ball);
//            if (r) {
//                changImg();
//            }

        return r;
    }
//    private void changImg() {
//        img = ImageUtil.getImg("boom.png");
//    }

    //判断飞机是否和小星星碰撞
    public boolean ifCrashStars(Picture3 picture3){
        boolean t = judge(picture3);
        return t;
    }

    //判断飞机是否和Boss子弹碰撞
    public boolean ifCrashBossBullet(bossBullet bossBullet){
        boolean t = judge(bossBullet);
        return t;
    }


}


